The term “leaky bucket” or “leaky bucket algorithm” is often used to refer to the generic cell rate algorithm (GCRA), which is a data packet policing policy that may be used to determine conformance to defined transmission levels. The GCRA may be implemented to monitor traffic flow for a user or network connection to ensure compliance with defined transmission levels. Specifically, the GCRA determines whether transmitted data, typically in the form of data packets, conforms to a particular data packet flow specification (e.g., data flow contract). For example, the GCRA may be used in combination with control parameters to enforce the conformance by monitoring and controlling data packet flow. Further, and for example, the GCRA may be used in combination with other network control functions to detect violations of negotiated parameters and to take appropriate actions.
The GCRA is essentially a data packet policing policy wherein a “leaking hole” defines the rate at which data packets can be accommodated, while the bucket depth defines the tolerance to data packet bursting over a given time period. For example, asynchronous transfer mode (ATM) data packets received in a bucket are leaked out of the bucket at a requested (e.g., contracted) rate, such as a leak rate to ensure quality of service (QoS). The bucket is typically a storage device, such as a buffer, cache or allocated memory in a storage device. In operation, one or more buckets are filled, and data is “leaked” to users (e.g., subscribers) at a predetermined rate (i.e., leak rate).
Various methods for controlling data flow using the GCRA are known. These methods may be defined by specific technical standards and/or specifications, including, for example, as set forth in a 3rd Generation Partnership Project (3GPP) specification. For example, a 3GPP technical specification for procedures used on a base station system (BSS) serving a general packet radio service (GPRS) support node (SGSN) interface for control of global system for mobile communication (GSM) packet data services within the digital cellular communications system (Phase 2+) using a leaky bucket is set forth in 3GPP TS 48.018. The 3GPP TS 48.018 specification, as well as others, define a leaky bucket data flow control scheme that provides limited flexibility in setting the various parameters for the leaky bucket process. For example, these parameters are often predetermined and do not allow for any modification or adjustment. This limited flexibility can result in inefficient usage of the resource and inability of certain service provisioning in a system.